package testes;

import static org.junit.Assert.*;

import java.util.HashSet;
import java.util.Set;

import org.bunny.businessLayer.Campeonato;
import org.bunny.businessLayer.FaseCampeonato;
import org.bunny.businessLayer.Grupo;
import org.bunny.businessLayer.Jogo;
import org.bunny.businessLayer.Pais;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;

public class GrupoTest {

	@BeforeClass
	public static void setUpBeforeClass() throws Exception {
	}

	@AfterClass
	public static void tearDownAfterClass() throws Exception {
	}

	@Before
	public void setUp() throws Exception {
	}

	@After
	public void tearDown() throws Exception {
	}

	

	@Test
	public void testGrupoStringFaseCampeonatoCampeonato() {
		Campeonato c = new Campeonato();
		Campeonato c2 = new Campeonato();
		Grupo g1 = new Grupo("A", FaseCampeonato.Grupos ,  c);
		
		g1.setCampeonato(c2);
		assertEquals(c2,g1.campeonato());
		
		g1.setDesignacao("B");
		assertEquals("B",g1.designacao());
		
		g1.setFase(FaseCampeonato.MeiasFinais);
		g1.setFase(FaseCampeonato.QuartosFinal);
		assertEquals(FaseCampeonato.QuartosFinal,g1.fase());
		
		assertEquals(FaseCampeonato.QuartosFinal,FaseCampeonato.valueOf("QuartosFinal"));
		
		Jogo jg1 = new Jogo();
		Jogo jg2 = new Jogo();
		Set<Jogo> jogos = new HashSet<Jogo>();
		jogos.add(jg2);
		g1.setJogos(jogos);
		assertEquals(jogos,g1.jogos());
		
		Pais a = new Pais();
		Pais b = new Pais();
		Set<Pais> paises = new HashSet<Pais>();
		paises.add(b);
		g1.setPaises(paises);
		assertEquals(paises,g1.paises());
			
	}


	@Test
	public void testToString() {
		Campeonato c = new Campeonato();
	Grupo a = new Grupo("A", FaseCampeonato.Final,c);

		assertEquals("Grupo [designacao=" + "A" + ", fase=" + FaseCampeonato.Final + ", campeonato=" + c + "]\n", a.toString());
		
	}

}
